package cn.itcast.sys.service;


import cn.itcast.result.PageBean;
import cn.itcast.result.Result;
import cn.itcast.sys.dto.EmployeeDTO;
import cn.itcast.sys.dto.EmployeeLoginDTO;
import cn.itcast.sys.dto.EmployeePageQueryDTO;
import cn.itcast.sys.pojo.Employee;
import cn.itcast.users.dto.PasswordEditDTO;
import cn.itcast.users.vo.EmployeeLoginVO;

import java.util.List;

public interface EmployeeService {

    /**
     * 员工登录
     *
     * @param dto
     * @return
     */
    Result<EmployeeLoginVO> login(EmployeeLoginDTO dto);

    /**
     * 新增员工
     *
     * @param dto
     */
    void add(EmployeeDTO dto);

    /**
     * 员工分页查询
     *
     * @param dto
     * @return
     */
    PageBean pageQuery(EmployeePageQueryDTO dto);

    /**
     * 启动禁用员工账号
     *
     * @param id
     * @param status
     */
    void startOrStop(Long id, Integer status);

    /**
     * 编辑员工信息
     *
     * @param dto
     */
    void update(EmployeeDTO dto);

    /**
     * 根据id查询员工
     *
     * @param id
     * @return
     */
    Employee getById(Integer id);

    /**
     * 修改密码
     *
     * @param dto
     */
    void updatePassword(PasswordEditDTO dto);

    /**
     * 找到所有员工的信息
     *
     * @return
     */
    List<Employee> getAll();
}
